package com.xinzhi.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xinzhi.domain.entity.Cart;
import com.xinzhi.domain.entity.Orders;
import com.xinzhi.domain.entity.Orders_detail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface OrderMapper extends BaseMapper<Orders> {
    /**
     * 生成订单（在购物车去付款之后）
     * @param orders 订单对象
     * @return  返回一个订单
     */
    int generate(Orders orders);

    /**
     * 生成订单详情（生成订单时）
     * @param orders_detail
     * @return
     */
    int newDetails(Orders_detail orders_detail);

    /**
     * 拿到订单
     * @param userId
     * @param state
     * @return
     */
    List<Orders> getOrder(@Param("userId") Integer userId,@Param("placeId") Integer placeId,@Param("state") Integer state);

    /**
     * 根据订单拿到订单详情
     */
    List<Orders_detail> getDetails(@Param("orderNum") String orderNum);

    /**
     * 在不同情况下的通用的修改订单状态的方法
     * @param orderNum
     * @param state
     * @return
     */
    int updateOrderState(@Param("orderNum") String orderNum,@Param("state") Integer state);

    /**
     * 查到所有订单状态为0的订单
     * @return
     */
    List<Orders> getOrderByTypeO();

    List<Cart>  getCartInfo(Integer userId);

    Orders getOrdersByOrderNum(@Param("orderNum") String orderNum);
}
